package com.cmc.cloud.cmclink.doc.vo.blnoblprintlogvo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import org.hibernate.validator.constraints.Length;

/**
 * 提单打印 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 *
 * @author llp
 */
@Data
public class BlnoBlPrintLogBaseVO {

    @Schema(description = "提单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9807")
    private Long blnoId;

    @Schema(description = "提单号", requiredMode = Schema.RequiredMode.REQUIRED)
    @Length(max = 50, message = "{blnoblprintlog.blno.length}")
    private String blno;

    @Schema(description = "打印内容json", requiredMode = Schema.RequiredMode.REQUIRED)
    private String printJson;

    @Schema(description = "打印类型SIGN TYPE 、Copy件、海运单、正本 ", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @Length(max = 20, message = "{blnoblprintlog.printtype.length}")
    private String printType;

    @Schema(description = "打印主体 海外HW  海南HN   ")
    @Length(max = 20, message = "{blnoblprintlog.printblentity.length}")
    private String printBlEntity;

    @Schema(description = "打印份数 三个选项：0、1、2、3", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer printNumber;

    @Schema(description = "打印港口", requiredMode = Schema.RequiredMode.REQUIRED)
    @Length(max = 5, message = "{blnoblprintlog.printport.length}")
    private String printPort;

    @Schema(description = "打印船名")
    @Length(max = 20, message = "{blnoblprintlog.printvessel.length}")
    private String printVessel;

    @Schema(description = "打印航次")
    @Length(max = 20, message = "{blnoblprintlog.printvoyage.length}")
    private String printVoyage;

    @Schema(description = "操作类型 两个选项：preview、printed", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @Length(max = 20, message = "{blnoblprintlog.operationtype.length}")
    private String operationType;

    @Schema(description = "打印文件名 ", example = "赵六")
    @Length(max = 50, message = "{blnoblprintlog.printfilename.length}")
    private String printFileName;

    @Schema(description = "draft件地址", example = "22780")
    @Length(max = 20, message = "{blnoblprintlog.draftfileid.length}")
    private String draftFileId;

    @Schema(description = "draft件文件名", example = "李四")
    @Length(max = 20, message = "{blnoblprintlog.draftfilename.length}")
    private String draftFileName;

    @Schema(description = "电子版本件文件id", example = "file1")
    @Length(max = 20, message = "{blnoblprintlog.previewFileId.length}")
    private String previewFileId;

    @Schema(description = "电子版本文件名", example = "previewFile.pdf")
    @Length(max = 20, message = "{blnoblprintlog.previewFileName.length}")
    private String previewFileName;

    @Schema(description = "isusse件地址", example = "29461")
    @Length(max = 20, message = "{blnoblprintlog.issuefieid.length}")
    private String issueFieId;

    @Schema(description = "issue件的文件名", example = "赵六")
    @Length(max = 20, message = "{blnoblprintlog.issuefilename.length}")
    private String issueFileName;

    @Schema(description = "issue件附件页", example = "18282")
    @Length(max = 20, message = "{blnoblprintlog.attfileid.length}")
    private String attFileId;

    @Schema(description = "issue件附件页文件名", example = "王五")
    @Length(max = 20, message = "{blnoblprintlog.attfilename.length}")
    private String attFileName;

    @Schema(description = "备注", example = "你猜")
    @Length(max = 255, message = "{blnoblprintlog.remark.length}")
    private String remark;
}
